package com.config;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * @Author Ms.发发
 * @ClassName RequestAliPay
 * @Date 2024/12/19 14:47
 * @Description
 **/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class RequestAliPay {
    private String outTradeNo;  //商户订单号
    private BigDecimal totalAmount;  //订单总金额
    private String subject;   //订单标题
    //商家和支付宝签约的产品码。 支付宝预授权场景传：PRE_AUTH_ONLINE；新当面资金授权场景传：PRE_AUTH；
    private String productCode;   //产品码  资金预授权单号
    private String authNo;   //资金预授权单号


    //可选参数  ↓ ↓ ↓ ↓

    /**
     * @Description 适用于支付宝预授权和新当面资金授权场景。枚举值：
     * COMPLETE：转交易完成后解冻剩余冻结金额；
     * NOT_COMPLETE：转交易完成后不解冻剩余冻结金额；
     * 默认值为NOT_COMPLETE。
     */
    private String authConfirmMode;   //预授权确认模式

    private String goodsDetail; //商品列表信息  json格式

    private String extendParams; //业务扩展参数
    private String promoParams; //优惠明细参数，通过此属性补充营销参数
    private String storeId; //商户门店编号  指商户创建门店时输入的门店编号。 NJ_001
    private String terminalId; //商户机具终端编号 NJ_T_001
    /**
     * @Description 返回参数选项。
     * 商户通过传递该参数来定制同步需要额外返回的信息字段，数组格式。
     * 如：["fund_bill_list","voucher_detail_list","discount_goods_detail"]
     */
    private String queryOptions;
}
